package com.atguigu.utils;

import org.wltea.analyzer.core.IKSegmenter;
import org.wltea.analyzer.core.Lexeme;

import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;

public class KeyWordUtil {
    public static List<String> splitKeyWord(String keyWord) throws IOException {

        //todo 创建集合用于存放切分后的词
        ArrayList<String> words = new ArrayList<>();

        //todo 创建IK分词对象 true:ik_smart(一个词只能出现一次) false:ik_max_word（只要是词就拆开）
        IKSegmenter ikSegmenter = new IKSegmenter(new StringReader(keyWord), false);

        //todo 循环取出切分后的词放入集合
        Lexeme lexeme = ikSegmenter.next();//第一条数据对象

        while (lexeme != null){//不为null就获取单词放入集合
            String word = lexeme.getLexemeText();
            words.add(word);
            //将切分后的第一个单词放入集合后再获取下一个单词
            lexeme = ikSegmenter.next();
        }


        //todo 返回集合
        return words;
    }

    public static void main(String[] args) throws IOException {
        System.out.println(splitKeyWord("大数据之flink实时数仓项目"));
        //true:ik_smart(一个词只能出现一次):  [大, 数据, 之, flink, 实, 时数, 仓, 项目]
        //false:ik_max_word（只要是词就拆开）:[大数, 数据, 之, flink, 实时, 时数, 仓, 项目]
    }

}
